﻿#include <Sys\RenderUnit\SysDatagramDisposal_OpenGL\VERTEXREGISTRYDDOPENGL.HPP>


using namespace CxxlMan;
using namespace Cxxl3D;

class CVertexRegistryDDOpenGL:public IVertexRegistryDDOpenGL
{
  Smart_Ptr<IVertexDD> IVertexDD_Ptr;

  // 登記目前作用中的 IVertexDD
  virtual void cxxlFASTCALL Set(const CxxlMan::Smart_Ptr<IVertexDD> &IVertexDD_Arg)
  {
    IVertexDD_Ptr = IVertexDD_Arg;
  }

  // 取得目前登記作用中的 IVertexDD
  virtual CxxlMan::Smart_Ptr<IVertexDD> cxxlFASTCALL Get()
  {
    return IVertexDD_Ptr;
  }

  virtual bool cxxlFASTCALL Exec(const Smart_Ptr<IRenderDatagramDisposalCenterOpengl> &IRenderDatagramDisposalCenter_Arg,
    const Smart_Ptr<IRenderDatagram> &IRenderDatagram_Arg, const CxxlMan::CSmart_Ptr<Matrix4x4> &ViewMatrix_Arg)
  {
    return true;
  }

public:
  // Constructor
  CVertexRegistryDDOpenGL()
    :cxxlObject(Spirit_Easy),
    IVertexDD_Ptr(NULL,this)
  {
  }

  // Destructor
  virtual ~CVertexRegistryDDOpenGL()
  {}


};

cxxlObject *cxxlFASTCALL New_CVertexRegistryDDOpenGL()
{
  return new CVertexRegistryDDOpenGL;
}